<?php
class DespachosController extends AppController
{
	var $name = 'Despachos';
	var $uses = array('Bitacora','Usuario','Producto','Despacho','Tipo_producto','Organizacion','Estado','Division','Almacen','Mensaje','Permisologia','Medidas_presentacion','Agencia');
	var $helpers = array('Html','Form','Ajax','Javascript','Cargar');
	var $layout =  "ajax";
   


	function resultado($cantidad=null, $costo=null, $presentacion=null, $medidas=null)
	{
if($cantidad==null)$cantidad=1;
if($costo==null)$costo=0;
if($presentacion==null)$presentacion=0;
if($medidas==null)$medidas=0;

$volumen=$this->consulta($medidas, 'Medidas_presentacion', 'nombre');

/*
$costo=explode('.',$costo);
if(!isset($costo[1]))$costo=$costo[0].'.00';
else $costo=$costo[0].'.'.substr( $costo[1], 0, 4 );
$costo=$this->redondear_dos_decimal($costo);
*/

//$costo=substr( $cadena, 0, 5 );
//$costo=str_replace(',','.',$costo);
//$costo=$this->quitarmiles("$costo");

if(!isset($volumen))$volumen='';
else
$volumen=($cantidad*$presentacion).'-'.$volumen;
$total=($cantidad*$costo);


		$this->set('total',$total);
		$this->set('volumen',$volumen);
	}





function ver_agencia($estado=null)
	{
if(!isset($estado))
$this->set('ban',0);
else
$this->set('ban',1);
$this->set('agencia',$this->findlist('Agencia','estado_id', $estado));
  }

	function guardar_producto()
	{
		$d=$this->data;
		$cont='Productos';	
		$funt='guardar_producto';
//echo $d['id'];
		if(empty($d['codigo'])) 
			$this->mensaje_error($cont,$funt,'codigo');
		else if(empty($d['nombre']))
      $this->mensaje_error($cont,$funt,'nombre');
		else if(empty($d['tipo']))
      $this->mensaje_error($cont,$funt,'tipo');
		else if(empty($d['organizacion']))
      $this->mensaje_error($cont,$funt,'organizacion');
		else if(empty($d['division']))
      $this->mensaje_error($cont,$funt,'division');
		else if(empty($d['almacen']))
      $this->mensaje_error($cont,$funt,'almacen');
		else
		{

 if(!isset($d['id']))
{
$vn=0;
$vald="Nuevo";
echo $med='Nuevo Producto Registrado exitosamente!!!';
}
else
{
$vn=1;
$vald="Modificar";
$med='Producto Modificado exitosamente!!!';
}


			$this->data=null;
			$this->Producto->query('BEGIN  WORK');
			 if(isset($d['id']))
			$this->data['Producto']['id']=$d['id'];
			$this->data['Producto']['codigo']=$this->mayuscula($d['codigo']);
			$this->data['Producto']['nombre']=$this->mayuscula($d['nombre']);
			$this->data['Producto']['tipo_producto_id']=$d['tipo'];
			$this->data['Producto']['organizacion_id']=$d['organizacion'];
			$this->data['Producto']['division_id']=$d['division'];
			$this->data['Producto']['almacen_id']=$d['almacen'];
			$this->data['Producto']['estado']=1;
 			if ($this->Producto->save($this->data))
 			{
				$id_producto=$this->Producto->id;
				$this->data['Bitacora']['usuario_id']=$this->Session->read('usuario_id');
				$this->data['Bitacora']['fecha']=$this->f_actual();
				$this->data['Bitacora']['hora']=date('h:i:s:a');
				$this->data['Bitacora']['accion']=$vald;
				$this->data['Bitacora']['modelo']='Producto';
				$this->data['Bitacora']['accion_id']= $id_producto;
				if($this->Bitacora->save($this->data))
				{	
					$this->Producto->query('COMMIT');
					$this->set('Exito',$med);

				}
				else
				{
					$this->Producto->query('ROLLBACK');
					$this->set('Error','Error Guardando bitacora');
				}
			}
			else
			{

				$this->Producto->query('ROLLBACK');
				$this->set('Error','Datos del Producto no fueron guardados');
 	   		}

		
echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('listado').style.display='none';
			document.getElementById('vista').style.display='block';
     </script>";


    $this->productos();
	  $this->listado_despachos();
		$this->render('listado_despachos');


		}

	}


	function tipo_producto($id=null)
	{
		$tipo_producto = $this->Tipo_producto->find('list',array('fields'=> array('Tipo_producto.id','Tipo_producto.nombre'),'conditions'=>array('Tipo_producto.estado'=>1), 'order'=>'Tipo_producto.nombre'));
			return $tipo_producto;
	}

	function organizacion()
	{
		 $organizacion = $this->Organizacion->find('list',array('fields'=> array('Organizacion.id','Organizacion.nombre'),'conditions'=>array('Organizacion.estado'=>1), 'order'=>'Organizacion.nombre'));
			return $organizacion;
	}
	function division_input($ban=null, $id=null)
	{
		if($id==null)
		{
		 $division = $this->Division->find('list',array('fields'=> array('Division.id','Division.nombre'),'conditions'=>array('Division.estado'=>1), 'order'=>'Division.nombre'));
		}
		else
		{
		 $division = $this->Division->find('list',array('fields'=> array('Division.id','Division.nombre'),'conditions'=>array('Division.estado'=>1,'Division.organizacion_id'=>$id), 'order'=>'Division.nombre'));
		}
		if($ban==1)
			$this->set('division',$division);
			return $division;
	}
	function almacen_input($ban=null, $id=null)
	{
		if($id==null)
		{
		 $almacen = $this->Almacen->find('list',array('fields'=> array('Almacen.id','Almacen.nombre'),'conditions'=>array('Almacen.estado'=>1), 'order'=>'Almacen.nombre'));
		}
		else
		{
		 $almacen = $this->Almacen->find('list',array('fields'=> array('Almacen.id','Almacen.nombre'),'conditions'=>array('Almacen.estado'=>1,'Almacen.division_id'=>$id), 'order'=>'Almacen.nombre'));
		}
		if($ban==1)
			$this->set('almacen',$almacen);
			return $almacen;
	}






/*
function division() {

	}
*/


/*
		function permisos($id=null)
	{
		$permiso = $this->Permisologia->find('first',array('conditions'=>array('Permisologia.usuario_id'=>$id), 'order'=>'Permisologia.id'));
//		$this->set('usuario',$usuario);
return $permiso['Permisologia']['perfil_id'];
	}
*/
	function productos()
	{

		if($this->pelfil($this->Session->read('usuario_id')) == 1)  // GERENTE GENERAL
		{
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>1), 'order'=>'Producto.id'));
		}

		else if($this->pelfil($this->Session->read('usuario_id')) == 2) // GERENTE DE LA ORGANIZACION
		{
		
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>1, 'Producto.organizacion_id'=>$this->Session->read('organizacion')), 'order'=>'Producto.id'));
		}
		else if($this->pelfil($this->Session->read('usuario_id')) == 3) // DIVISION
		{
		
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>1,'Producto.division_id'=>$this->consulta($this->Session->read('usuario_id'), 'Usuario', 'division_id')), 'order'=>'Producto.id'));
		}
		else if($this->pelfil($this->Session->read('usuario_id')) == 4) // ALMACEN
		{
		
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>1,'Producto.division_id'=>$this->consulta($this->Session->read('usuario_id'), 'Usuario', 'almacen_id')), 'order'=>'Producto.id'));
		}

		else
		{
			$Producto=null;
		}

	$this->set('data',$Producto);
	
	}

  	function listado_despachos()
	{

//echo $this->consulta(1, 'Usuario', 'nombre');
    $this->productos();




   echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('listado').style.display='none';
			document.getElementById('vista').style.display='block';
     </script>";


	}
/*
  	function activar($id)
	{

	  $valor=$this->consulta(1, 'Menu', 'estado');
    $this->actualizar_estado($id, 'Menu', $valor);
echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('listado').style.display='none';
			document.getElementById('vista').style.display='block';
     </script>";


    $this->productos();
	  $this->listado_despachos();
		$this->render('listado_despachos');

	}
*/



  	function modificar_producto($id=null)
	{


   		$data = $this->Producto->find('first',array('conditions'=>array('Producto.id'=>$id)));
		$this->set('data',$data);

		 $this->set('tipo_producto',$this->tipo_producto());
     $this->set('organizacion',$this->organizacion());
     $this->set('division',$this->division_input(0,null));
		 $this->set('almacen',$this->almacen_input(0,null));

   

/*

    $estado = $this->Estado->find('first',array('conditions'=>array('Estado.estado'=>1,'Estado.pais_id'=>$data['Pai']['id'])));
		$this->set('estado',$estado['Estado']['nombre']);
		$parroquia = $this->Parroquia->find('first',array('conditions'=>array('Parroquia.id'=>$proveedor['Proveedor']['parroquia_id'])));
		$this->set('parroquia',$parroquia['Parroquia']['nombre']);
		$municipio = $this->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$proveedor['Proveedor']['municipio_id'])));
		$this->set('municipio',$municipio['Municipio']['nombre']);

*/


 $this->lista();




echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('listado').style.display='block';
			document.getElementById('vista').style.display='none';
     </script>";
}

	function cargar_proveedor($id=null)
	{
		if($id==null)
		{
		$this->set('proveedor',null);
		$this->set('proveedor',null);
		$this->set('parroquia',null);
		$this->set('municipio',null);
		}

		else
		{
		//$proveedor = $this->Proveedor->find('all',array('conditions'=>array('Proveedor.id'=>$id,'Proveedor.estado'=>1), 'order'=>'Proveedor.id'));
		$proveedor = $this->Proveedor->find('first',array('conditions'=>array('Proveedor.id'=>$id)));
		$this->set('proveedor',$proveedor);

		$estado = $this->Estado->find('first',array('conditions'=>array('Estado.id'=>$proveedor['Proveedor']['estado_id'])));
		$this->set('estado',$estado['Estado']['nombre']);
		$parroquia = $this->Parroquia->find('first',array('conditions'=>array('Parroquia.id'=>$proveedor['Proveedor']['parroquia_id'])));
		$this->set('parroquia',$parroquia['Parroquia']['nombre']);
		$municipio = $this->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$proveedor['Proveedor']['municipio_id'])));
		$this->set('municipio',$municipio['Municipio']['nombre']);

	
		}
	}
	





	
	function estados($pais=null)
	{
		if($pais==null)
			$this->set('estado',null);	
		else
		{
			$estado = $this->Estado->find('list',array('fields'=> array('Estado.id','Estado.nombre'),'conditions'=>array('Estado.pais_id'=>$pais,'Estado.estado'=>1), 'order'=>'Estado.nombre'));
			$this->set('estado',$estado);
		}
	}
	function municipios($estado=null)
	{
		if($estado==null)
			$this->set('municipio',null);	
		else
		{
			$municipio = $this->Municipio->find('list',array('fields'=> array('Municipio.id','Municipio.nombre'),'conditions'=>array('Municipio.estado_id'=>$estado,'Municipio.estado'=>1), 'order'=>'Municipio.nombre'));
			$this->set('municipio',$municipio);
		}
	}
	function parroquias($municipio=null)
	{
		if($municipio==null)
			$this->set('parroquia',null);	
		else
		{
			$parroquia = $this->Parroquia->find('list',array('fields'=> array('Parroquia.id','Parroquia.nombre'),'conditions'=>array('Parroquia.municipio_id'=>$municipio,'Parroquia.estado'=>1), 'order'=>'Parroquia.nombre'));
			$this->set('parroquia',$parroquia);
		}
	}


	function nuevo_vehiculo()
	{
		$this->lista();
		$this->departamento_lista();
		

		$marca = $this->MarcaVehiculo->find('list',array('fields'=> array('MarcaVehiculo.id','MarcaVehiculo.nombre'),'conditions'=>array('MarcaVehiculo.estado'=>1), 'order'=>'MarcaVehiculo.nombre'));
		$modelo = $this->ModeloVehiculo->find('list',array('fields'=> array('ModeloVehiculo.id','ModeloVehiculo.nombre'),'conditions'=>array('ModeloVehiculo.estado'=>1), 'order'=>'ModeloVehiculo.nombre'));
		$tipo_vehiculos = $this->TipoVehiculo->find('list',array('fields'=> array('TipoVehiculo.id','TipoVehiculo.nombre'),'conditions'=>array('TipoVehiculo.estado'=>1), 'order'=>'TipoVehiculo.nombre'));
		$clase = $this->Clase->find('list',array('fields'=> array('Clase.id','Clase.nombre'),'conditions'=>array('Clase.estado'=>1),'order'=>'Clase.nombre'));		
		$uso = $this->Uso->find('list',array('fields'=> array('Uso.id','Uso.nombre'),'conditions'=>array('Uso.estado'=>1), 'order'=>'Uso.nombre'));

		$pais = $this->Pai->find('list',array('fields'=> array('Pai.id','Pai.nombre'),'conditions'=>array('Pai.estado'=>1), 'order'=>'Pai.nombre'));
		$this->set('pais',$pais);

		

		$emp = $this->Parroquia->find('list',array('fields'=> array('Parroquia.id','Parroquia.nombre'),'conditions'=>array('Parroquia.municipio_id'=>14,'Parroquia.estado'=>1), 'order'=>'Parroquia.nombre'));
		$this->set('parrolis',$emp);



/*
for($i=0; $i<30; $i++)
{
echo '<br />'.(date('Y')-$i);
}
*/





		$this->set('marca',$marca);
		$this->set('modelo',$modelo);
		$this->set('tipo_vehiculos',$tipo_vehiculos);
		$this->set('clase',$clase);
		$this->set('uso',$uso);


/*
		//$marca = $this->Marca->find('list',array('conditions'=>array('Marca.estado'=>1), 'order'=>'Marca.id'));
				for($i=0;$i <count($marca);$i++)
				{
				echo '<br />'.$marca[$i]['Marca']['nombre'];
				}
*/


		$this->set('tipo_usuario',$this->Session->read('tipo_usuario'));
		$this->set('departamento_id',$this->Session->read('departamento_id'));
		$this->set('nombre_departamento',$this->Session->read('departamento_nombre'));
		echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('listado_usuario').style.display='none';
			document.getElementById('nueva_usu').style.display='block';</script>";
	}
	function buscador_index($busq=null)
	{
		$busq=str_replace("'",'',$busq);
		$busq=str_replace('"','',$busq);
		$busq=str_replace("<?","<",$busq);	
		$busq=strtoupper($busq);
		$this->set('busq',$busq);
	}

////////////////////////////////////////////////////////////////////////////////////////////////

	function listado()
	{
		$data=$this->all('Despacho');
		$this->set('data',$data);
	//	$this->script($this->div('l'),$this->div('v'));//(1,0)
 	}

	function nuevo()
	{
		$sql= "select pr.*, al.nombre as tipo from des_productos pr inner join des_tipo_productos al on al.id = pr.tipo_producto_id where pr.estado=1  order by pr.id ASC";
   	$r= $this->Producto->query($sql);
		$data=array();
		for($i=0; $i < count($r); $i++)
		{
			$data[$r[$i][0]['id']]=' ['.$r[$i][0]['codigo'].'] '.$r[$i][0]['nombre'].' ('.$r[$i][0]['tipo'].')';
		}
	  $this->set('producto',$data);
    $this->set('medidas',$this->findlist('Medidas_presentacion'));
		$this->set('estados',$this->findlist('Estado','pai_id', 1));
		$this->script($this->div('l'),$this->div('v'));//(1,0)
	}





	function guardar()
	{
		$d=$this->data;
//$this->script($this->div('v'),$this->div('l'));//(1,0
//echo 'chofer='.$d['datoschoferf'];
/*
echo '<br />ndespacho='.$d['ndespacho'];
echo '<br />fecha='.$d['fecha'];
echo '<br />nlote='.$d['nlote'];
echo '<br />ordenentrega='.$d['ordenentrega'];
echo '<br />producto='.$d['producto'];
echo '<br />uni_presentacion='.$d['uni_presentacion'];
echo '<br />medidas='.$d['medidas'];
echo '<br />cantidad='.$d['cantidad'];
echo '<br />costo='.$d['costo'];
echo '<br />volumen='.$d['volumen'];
echo '<br />estado='.$d['estado'];
echo '<br />agencia='.$d['agencia'];
echo '<br />datoschoferf='.$d['datoschoferf'];
echo '<br />datoschofer='.$d['datoschofer'];
echo '<br />datosplaca='.$d['datosplaca'];
echo '<br />datosplaca='.$d['medidas'];

*/

		$cont='Despachos';	
		$funt='guardar';
			  if(empty($d['ndespacho']))
      			$this->mensaje_error($cont,$funt,'ndespacho');
		else if(empty($d['fecha']))
     			$this->mensaje_error($cont,$funt,'fecha');
		else if(empty($d['nlote']))
      			$this->mensaje_error($cont,$funt,'nlote');
		else if(empty($d['ordenentrega']))
      			$this->mensaje_error($cont,$funt,'ordenentrega');
		else if(empty($d['producto']))
      			$this->mensaje_error($cont,$funt,'producto');
		else if(empty($d['uni_presentacion']))
      			$this->mensaje_error($cont,$funt,'uni_presentacion');
		else if(empty($d['medidas']))
      			$this->mensaje_error($cont,$funt,'medidas');
		else if(empty($d['cantidad']))
      			$this->mensaje_error($cont,$funt,'cantidad');
		else if(empty($d['costo']))
      			$this->mensaje_error($cont,$funt,'costo');
		else if(empty($d['volumen']))
      			$this->mensaje_error($cont,$funt,'volumen');
		else if(empty($d['estado']))
      			$this->mensaje_error($cont,$funt,'estado');
		else if(empty($d['agencia']))
      			$this->mensaje_error($cont,$funt,'agencia');
		else if(isset($d['datoschoferf'])) 
			$this->mensaje_error($cont,$funt,'chofer');
		else if(!isset($d['datoschofer'])) 
			$this->mensaje_error($cont,$funt,'chofer');
		else if(isset($d['datosplacaf'])) 
			$this->mensaje_error($cont,$funt,'placa');
		else if(!isset($d['datosplaca'])) 
			$this->mensaje_error($cont,$funt,'placa');

	else
		{
echo 'valido';


			if(!isset($d['id']))
			{
			$vn=0;
			$vald="Nuevo";
			$med='Nuevo Despacho Registrado exitosamente!!!';
			}
			else
			{
				$vn=1;
				$vald="Modificar";
				$med='Despacho Modificado exitosamente!!!';
			}



			$this->data=null;
			$this->Despacho->query('BEGIN  WORK');
			if(isset($d['id']))
			$this->data['Despacho']['id']=$d['id'];
			$this->data['Despacho']['estado']=1;
			$this->data['Despacho']['n_despacho']=$this->mayuscula($d['ndespacho']);
			$this->data['Despacho']['n_lote']=$this->mayuscula($d['nlote']);
			$this->data['Despacho']['cant_despacho']=$this->mayuscula($d['cantidad']);
			$this->data['Despacho']['costo_unitario']=$this->mayuscula($d['costo']);
			$this->data['Despacho']['orden_entrega']=$this->mayuscula($d['ordenentrega']);
			$this->data['Despacho']['producto_id']=$d['producto'];
			$this->data['Despacho']['unidad_presentacion']=$this->mayuscula($d['uni_presentacion']);
			$this->data['Despacho']['agencia_id']=$d['agencia'];
			$this->data['Despacho']['chofer_id']=$d['datoschofer'];
			$this->data['Despacho']['vehiculo_id']=$d['datosplaca'];
			$this->data['Despacho']['fecha_despacho']=$d['fecha'];
			$this->data['Despacho']['fecha_sistema']=$this->f_actual();
			$this->data['Despacho']['medidas_presentacion_id']=$d['medidas'];

	 		if ($this->Despacho->save($this->data))
	 		{
				$id=$this->Despacho->id;
				$this->data['Bitacora']['usuario_id']=$this->Session->read('usuario_id');
				$this->data['Bitacora']['fecha']=$this->f_actual();
				$this->data['Bitacora']['hora']=date('h:i:s:a');
				$this->data['Bitacora']['accion']=$vald;
				$this->data['Bitacora']['modelo']='Despacho';
				$this->data['Bitacora']['accion_id']= $id;
				if($this->Bitacora->save($this->data))
				{	
					$this->Despacho->query('COMMIT');
					$this->set('Exito',$med);
				}
				else
				{
					$this->Despacho->query('ROLLBACK');
					$this->set('Error','Error Guardando bitacora');
				}
			}
			else
			{
				$this->Despacho->query('ROLLBACK');
				$this->set('Error','Datos del Producto no fueron guardados');
	   		}


		$data=$this->all('Despacho');
		$this->set('data',$data);

		//	$this->script($this->div('l'),$this->div('v'));//(1,0)
	  	//	$this->productos();
		 	$this->listado();
			$this->render('listado');
	/**/	}

	}































}
